package chapter04

import scala.io.StdIn

/**
 * Created with IntelliJ IDEA.
 * ClassName: Test01_ifElse
 * Package: chapter04
 * Description:
 * User: fzykd
 *
 * @Author: LQH
 *          Date: 2023-06-18
 *          Time: 15:34
 */

object Test01_ifElse {
  def main(args: Array[String]): Unit = {

    println("请输入年龄")
    val age: Int = StdIn.readInt()

    //单分支
    if (age >= 18) {
      println("成年")
    }

    println("----------------------")

    //2.双分支
    if (age >= 18) {
      println("成年")
    } else {
      println("未成年")
    }

    println("----------------------")

    //2.多分支
    if (age < 18) {
      println("未成年")
    } else if (age >= 18 && age <= 60) {
      println("成年")
    } else {
      println("老年")
    }


    //测试分支语句的返回值
    //if else也是表达式 本身也是有返回值的
    //返回值定义为当前分支最后一行表达式的返回值
    val result: Any = if (age <= 6) {
      //这里的String也可以该为Unit(最后一行是String类的时候)
      //指定了String就不能返回Unit  但是指定了Unit 可以写成String 但是返回的还是Unit
      println("同年")
      "同年"
    } else if (age < 10) {
      //如果返回值是String 那么分支的最一行就应该返回String
      //每个分支都是如此
      println("青少年")
      "青少年"
    } else if (age < 35) {
      println("青年")
      age
    } else if (age < 60) {
      println("中年")
      age
    } else {
      println("老年")
      "老年"
    }
    println("result= " + result) //()


    //Java中的三元运算符 a?b:c  就是一个双分支 在Scala中变种
    val res: String = if (age > 18) {
      "成年"
    } else {
      "未成年"
    }
    //一下简写方式 如果分支当当中只有一行语句的话 可以这样写
    val re: String = if (age >= 18) "成年" else "未成年"


    println("--------------------------")
    //嵌套分支
    if (age > 18){
      println("成年")
      if (age >= 35) {
        if (age >= 60){
          println("老年")
        }else{
          println("中年")
        }
      }else{
        println("青年")
      }
    }else{
      println("未成年")
      if (age <= 6){
        println("同年")
      }else{
        println("青少年")
      }
    }


  }

}
